/**
 * 蓝牙配置常量
 * 用于定义Sandart设备的蓝牙服务和特征值UUID
 */

export default {
	// WiFi配置服务UUID（Nordic UART Service）
	WIFI_SERVICE_UUID: '6E400001-B5A3-F393-E0A9-E50E24DCCA9E',
	
	// WiFi配置特征值UUID（RX - 设备接收数据）
	WIFI_CONFIG_CHARACTERISTIC_UUID: '6E400002-B5A3-F393-E0A9-E50E24DCCA9E',
	
	// 设备响应特征值UUID（TX - 设备发送数据）
	DEVICE_RESPONSE_CHARACTERISTIC_UUID: '6E400003-B5A3-F393-E0A9-E50E24DCCA9E',
	
	// 设备名称前缀（用于过滤扫描结果）
	DEVICE_NAME_PREFIX: 'sandart',
	
	// 扫描配置
	SCAN_DURATION: 15000, // 扫描持续时间(毫秒)
	SCAN_MAX_RETRIES: 3, // 最大重试次数
	
	// 连接配置
	CONNECTION_TIMEOUT: 10000, // 连接超时时间(毫秒)
	RESPONSE_TIMEOUT: 10000, // 等待设备响应超时时间(毫秒)
	
	// 数据传输配置
	MAX_DATA_CHUNK_SIZE: 20, // BLE单次传输最大字节数(字节)
	
	/**
	 * 检查UUID是否匹配WiFi服务
	 * @param {string} uuid - 设备服务UUID
	 * @returns {boolean} 是否匹配
	 */
	isWifiService(uuid) {
		if (!uuid) return false
		const upperUuid = uuid.toUpperCase()
		return upperUuid.includes(this.WIFI_SERVICE_UUID.toUpperCase())
	},
	
	/**
	 * 检查UUID是否匹配WiFi配置特征值
	 * @param {string} uuid - 设备特征值UUID
	 * @returns {boolean} 是否匹配
	 */
	isWifiConfigCharacteristic(uuid) {
		if (!uuid) return false
		const upperUuid = uuid.toUpperCase()
		return upperUuid.includes(this.WIFI_CONFIG_CHARACTERISTIC_UUID.toUpperCase())
	},
	
	/**
	 * 检查设备名称是否为Sandart设备
	 * @param {string} name - 设备名称
	 * @returns {boolean} 是否为Sandart设备
	 */
	isSandartDevice(name) {
		if (!name) return false
		return name.toLowerCase().startsWith(this.DEVICE_NAME_PREFIX.toLowerCase())
	}
}
